Pan Półsieć pracuje w firmie telekomunikacyjnej Bajkotel i jest projektantem protokołów
sieciowych. Obecnie zajmuje się on protokołem umożliwiającym przesyłanie danych z jednego
komputera do drugiego za pomocą kabla nowej generacji. Kablem takim można przesyłać sygnał
o
różnych poziomach napięcia, przy czym napięcie to może się zmieniać co
sekundy (
sekundy w trakcie której napięcie musi być stałe
nazywamy impulsem). Dane przesyłane są w postaci paczek obejmujących
kolejnych
impulsów (czyli przesłanie jednej paczki zajmuje
sekund).
Ze względów technicznych, w obrębie każdej paczki napięcie nie może być stałe, lecz
co jakiś czas musi się zmieniać. Mówiąc ściślej, nie można przesyłać paczek danych
zawierających
kolejnych impulsów o takim samym poziomie napięcia.
Jeżeli protokół umożliwia przesłanie
różnych paczek, to mówimy, że
w jednej paczce możemy zakodować
bitów informacji. Pan Półsieć zastanawia
się, ile bitów informacji można przesłać maksymalnie w ciągu jednej sekundy.
Załóżmy, że kablem można przesyłać sygnał o
różnych poziomach napięcia (
),
które oznaczamy
i
. Jeżeli napięcie może się zmieniać
razy
na sekundę (
), paczki obejmują po
impulsy (
) i
w obrębie każdej paczki żadne
kolejne impulsy nie mogą mieć takiego samego
napięcia (
), to nie można przesyłać paczek:
,
,
,
,
,
. Można natomiast przesyłać
paczki:
,
,
,
,
,
,
,
,
i
.
Ponieważ można przesyłać
różnych rodzajów paczek, więc w każdej paczce
można zakodować
bitów informacji.
W ciągu sekundy można przesłać
paczek, czyli
bitów informacji.
Napisz program, który:
,
,
i
opisujące protokół,W pierwszym wierszu pliku tekstowego pro.in zapisane są cztery liczby całkowite, pooddzielane pojedynczymi odstępami:
(
),
(
),
(
),
kolejnych impulsów w paczce, w obrębie których musi nastąpić zmiana napięcia
(
). Twój program powinien zapisać w pierwszym i jedynym wierszu standardowego wyjścia jedną liczbę całkowitą: maksymalną liczbę bitów, jakie można przesłać w ciągu sekundy, zaokrągloną w dół do najbliższej liczby całkowitej.
Dla danych wejściowych:
2 20 4 3
poprawną odpowiedzią jest:
16
Autor zadania: Marcin Stefaniak.
W razie problemów technicznych ze Szkopułem, prosimy o kontakt mailowy pod adresem szkopul@fri.edu.pl.
Jeśli chciałbyś porozmawiać o zadaniach, rozwiązaniach lub problemach technicznych, odwiedź nasze serwery na Discordzie. Są one moderowane przez społeczność, ale członkowie zespołu wsparcia również aktywnie się tam udzielają.